home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
NetNews Offline 2
/
NetNews Offline Volume 2.iso
/
news
/
comp
/
std
/
c
/
745
< prev
next >
Wrap
Internet Message Format
|
1996-08-06
|
2KB
Path: solon.com!not-for-mail
From: stanr@tiac.net (Stan Ryckman)
Newsgroups: comp.std.c,comp.lang.c.moderated
Subject: Re: printf() format extensions - looking for beta testers...
Date: 14 Apr 1996 23:49:33 -0500
Organization: Amber & Sneakers Fan Club
Sender: clc@solutions.solon.com
Approved: clc@solutions.solon.com
Message-ID: <4kskgt$roo@solutions.solon.com>
References: <4kll9l$o5h@solutions.solon.com> <4kobun$8i2@solutions.solon.com> <4koecq$8up@solutions.solon.com> <4kr74a$k8o@solutions.solon.com>
NNTP-Posting-Host: solutions.solon.com
In article <4kr74a$k8o@solutions.solon.com>,
Sean 'Captain Napalm' Conner <spc@gate.net> wrote:
[snip most]
: Well, why not change the approach? The current printf() will accept a
:line such as:
:
: printf("%*s",someint,somestring);
:
: To allow variable widths to be specified. Why not extend that and pass in
:the function pointers? Something like:
:
: printf("%p@",myfunctptr,myptrtype);
:
: Where '@' specifies a format function, and the letter before it declares
:the type using a single letter specification:
:
: c - char
: s - short
: i - int
: l - long
: f - float
: d - double
:
: With the following modifiers:
:
: p - pointer (if alone, void *)
: u - unsigned
:
: Less chance of clashes, and more flexible I feel.
Uh, no. "%p@" already has a meaning (for example) -- print a pointer
representation, and then an '@' character. Same for "%c@" etc.
You might retry this with "%@p@", "%@c@", ... . But I'd suggest
changing your modifiers to be consistent with "normal" ones; e.g.
"h" for short, "f" for double (note that float cannot be passed
here), etc.
(Since "@" is not in the C character set, and doesn't even have
a trigraph assigned to it, there are other problems with this...)
Cheers,
Stan.
--
Stan Ryckman (stanr@tiac.net)